The present invention relates generally to data processing equipment, and more particularly to a method, and apparatus for implementing that method, of checking the result of each multiplier operation.
As today's data processing equipment finds its way into more critical uses, the need to check the integrity of various of the operations performed by the data processing equipment, including its computational operations, becomes important. Balancing this importance is a need to keep cost and circuit count low. Thus, there often is a conflict between the necessity of reliable error detection and expense.
A variety of error detection routines are available for the more simplistic arithmetic operations such as, for example, addition, subtraction and shifting. However, for the more complicated arithmetic operations, such as multiplication implemented by special purpose circuitry, the error detection methods can become complex necessitating large amounts of circuitry.
One approach to error detection of multiplication is found in an article by Janak H. Patel and Leona Y. Fung, entitled "Concurrent Error Detection in Multiply and Divide Arrays." IEEE Transactions on Computers, Vol. C-32, No. 4, April, 1983 (pps. 417-422). This article describes an error detection technique in which after the initial multiplication operation, one of the operands is shifted, and a redundant multiplication operation performed. The result of the initial multiplication operation is thus checked by comparing it with the result of the redundant multiplication operation. However, the technique leaves much to be desired: First, although the technique taught involves some data alteration before performing the redundant multiplication operation, it is believed that the particular alteration taught (shifting one operand) is not as complete as could be. In addition, the technique withholds use of the result of the initial multiplication operation until the check is complete. This withholding is costly in terms of CPU time for each multiplication operation.
Accordingly, it is apparent that error detection for multiplication operations can be improved.